<?php
/** * class SExtension * Minden bővítményhez tartozik egy statikus SML leíró, amely meghatározza a * bővítmény jellemzőit, metódusait és azok elérési módját, * eseménykezelőit. Minden bővítmény tovább bővíthető más bővítményekkel. A * bővítmény a bővített osztályt jellemzőkkel, metódusokkal és eseménykezelőkkel * bővítheti.
 * 
 * - Az SCED SML szerkezeti elemei -
 * 
 * Descriptor:
 * o Típus: főcím
 * o Leírás: -
 * o Szülő: -
 * o Elvárás: kötelező
 * 
 * Introduction:
 * o Típus: címsor
 * o Leírás: A descriptor főinformációinak helye
 * o Szülő: descriptor
 * o Elvárás: kötelező
 * 
 * Version information:
 * o Típus: számozatlan felsorolás
 * o Leírás: A descriptor feldolgozó és az SML értelmező minimálisan elvárt verziószámait * sorolja fel
 * o Szülő: descriptor
 * o Elvárás: kötelező
 * 
 * SCEDP version:
 * o Típus: felsorolási elem
 * o Leírás: A Sparcle Component Extension Descriptor Parser (SCEDP) minimálisan elvárt
 * verziója
 * o Szülő: version information
 * o Elvárás: kötelező
 * 
 * SMP version:
 * o Típus: felsorolási elem
 * o Leírás: A Sparcle Modelling Parser (az SML feldolgozója) minimálisan elvárt verziója
 * o Szülő: version information
 * o Elvárás: kötelező
 * 
 * Extension:
 * o Típus: címsor
 * o Leírás: A komponens kiterjesztés (tov.: komponens) részletes leírása. Ezen a * címsoron belül szöveg is lehet, amely bővebb információt ad a komponensről.
 * o Szülő: Descriptor
 * o Elvárás: kötelező
 * 
 * class:
 * o Típus: számozatlan felsorolás
 * o Leírás: Felsorolja a komponens osztályához tartozó elsődleges információkat
 * o Szülő: Extension
 * o Elvárás: kötelező
 * 
 * extends:
 * o Típus: felsorolási elem
 * o Leírás: A komponens osztályának szülőosztálya.
 * o Szülő: class
 * o Elvárás: kötelező
 * 
 * implements:
 * o Típus: felsorolási elem, felsorolás
 * o Leírás: A komponens osztálya által megvalósított interfészek
 * o Szülő: class
 * o Elvárás: opcionális
 * 
 * className:
 * o Típus: felsorolási elem
 * o Leírás: A komponens osztályának neve.
 * o Szülő: class
 * o Elvárás: kötelező
 * 
 * tagName:
 * o Típus: felsorolási elem
 * o Leírás: A komponens tag neve. A rendszer XML sablonjaiban ezen a tag-néven lehet
 * hivatkozni a komponensre.
 * o Szülő: class
 * o Elvárás: kötelező
 * 
 * info:
 * o Típus: számozatlan felsorolás
 * o Leírás: Felsorolja a komponens elsődleges információit
 * o Szülő: Extension
 * o Elvárás: kötelező
 * 
 * version:
 * o Típus: felsorolási elem
 * o Leírás: A komponens verziószáma
 * o Szülő: info
 * o Elvárás: kötelező
 * 
 * authors:
 * o Típus: felsorolási elem, számozott felsorolás
 * o Leírás: A felsorolás tartalmazza a készítő nevét és elérhetőségét így:
 * "Kovács Béla: bela.kovacs@pelda.hu".
 * o Szülő: info
 * o Elvárás: opcionális
 * 
 * webPages:
 * o Típus: felsorolási elem, számozott felsorolás
 * o Leírás: A felsorolás tartalmazza a weboldal nevét és elérését így:
 * "Példa oldal: http://www.pelda.hu/".
 * o Szülő: info
 * o Elvárás: opcionális
 * 
 * copyright:
 * o Típus: felsorolási elem
 * o Leírás: Szerzőijogi információk.
 * o Szülő: info
 * o Elvárás: opcionális
 * 
 * licence:
 * o Típus: felsorolási elem
 * o Leírás: Licensz információk.
 * o Szülő: info
 * o Elvárás: opcionális
 * 
 * Properties:
 * o Típus: számozatlan felsorolás
 * o Leírás: A komponenshez tartozó tulajdonságok (osztály jellemzők, tagváltozók) * meghatározása.
 * o Szülő: Extension
 * o Elvárás: opcionális
 * 
 * Egy tulajdonság jellemzői:
 * 
 * accessibility:
 * o Típus: felsorolási elem, felsorolás
 * o Leírás: A tulajdonság elérhetőségéhez kapcsolódó jellemzők.
 * o Szülő: Properties felsorolási elem
 * o Elvárás: opcionális
 * 
 * namespace:
 * o Típus: felsorolási elem
 * o Leírás: Meghatározza, hogy a tulajdonság milyen névtérben érhető el.  * o Értékei: Public, Private, Protected - alapértelmezett: Public
 * o Szülő: accessibility
 * o Elvárás: opcionális
 * 
 * environment scope:
 * o Típus: felsorolási elem
 * o Leírás: Meghatározza, hogy a tulajdonság milyen környezetben érhető el.
 * o Értékei: PHP, JavaScript, Database, STML, All - alapértelmezett: * PHP+JavaScript+STML
 * o Szülő: accessibility
 * o Elvárás: opcionális
 * 
 * on read:
 * o Típus: felsorolási elem
 * o Leírás: Meghatározza, hogy a tulajdonság olvasása lehetséges legyen-e, és ha
 * igen, az információ honnan érkezzen. Kódlinkben hivatkozott függvény esetén a
 * függvénynek rendelkeznie kell visszatérési értékkel és nem rendelkezhet kötelező
 * paraméterrel!
 * o Értékei: Dany, get itself, kódlink - alapértelmezett: get itself
 * o Szülő: accessibility
 * o Elvárás: opcionális
 * 
 * on write:
 * o Típus: felsorolási elem
 * o Leírás: * Meghatározza, hogy a tulajdonság írása lehetséges legyen-e, és ha igen, az * információ hova érkezzen. Kódlinkben hivatkozott függvény esetén a függvény első * paraméterében történik az új érték átadása a függvény számára, tehát ezzel a * paraméterrel kötelező rendelkeznie!
 * o Értékei: Dany, put itself, kódlink - alapértelmezett: put itself
 * o Szülő: accessibility
 * o Elvárás: opcionális
 * 
 * type:
 * o Típus: felsorolási elem
 * o Leírás: Meghatározza a tulajdonság típusát.
 * o Értékei: Mixed, Int, Float, String, Bool, Object[:osztály neve],
 * Array - alapértelmezett: Mixed
 * o Szülő: Properties felsorolási elem
 * o Elvárás: opcionális
 * 
 * comment:
 * o Típus: felsorolási elem, SML bekezdés
 * o Leírás: A bekezdésen belül részletes leírást lehet adni a tulajdonságról
 * o Értékei: -
 * o Szülő: Properties felsorolási elem
 * o Elvárás: opcionális
 * 
 * default:
 * o Típus: felsorolási elem (felsorolt érték esetén beezdés is)
 * o Leírás: Meghatározza a tulajdonság kezdőértékét. Amennyiben értékként
 * felsorolás van meghatározva, annak megfelelő tömb fog létrejönni. A felsorolt
 * értékek lehetnek kódlinkek is (számozatlan felsorolás esetén az értékkulcsok is).
 * o Értékei: szám, szöveg, kódlink, SML felsorolás, NULL - alapértelmezett: NULL
 * o Szülő: Properties felsorolási elem
 * o Elvárás: opcionális
 * 
 * Methods:
 * o Típus: számozatlan felsorolás
 * o Leírás: A komponenshez tartozó metódusok (osztály függvények, tagfüggvénye) * meghatározása.
 * o Szülő: Extension
 * o Elvárás: opcionális
 * 
 * Egy metódus jellemzői:
 * 
 * accessibility:
 * o Típus: felsorolási elem, felsorolás
 * o Leírás: A metódus elérhetőségéhez kapcsolódó jellemzők.
 * o Szülő: Methods felsorolási elem
 * o Elvárás: opcionális
 * 
 * namespace:
 * o Típus: felsorolási elem
 * o Leírás: Meghatározza, hogy a metódus milyen névtérben érhető el.
 * o Értékei: Public, Private, Protected - alapértelmezett: Public
 * o Szülő: accessibility
 * o Elvárás: opcionális
 * 
 * environment scope:
 * o Típus: felsorolási elem
 * o Leírás: Meghatározza, hogy a metódus milyen környezetben érhető el.
 * o Értékei: PHP, JavaScript, Database, STML, All - alapértelmezett: PHP
 * o Szülő: accessibility
 * o Elvárás: opcionális
 * 
 * parameters:
 * o Típus: felsorolási elem, felsorolás
 * o Leírás: Meghatározza a metódus paramétereit
 * o Szülő: Methods felsorolási elem
 * o Elvárás: opcionális
 * 
 * Egy paraméter jellemzői:
 * type:
 * o Típus: felsorolási elem (tömb esetén felsorolás is)
 * o Leírás: Meghatározza a metódus visszatérésének típusát. Ha a paraméter
 * referencia, a típust így kell meghatározni - példa: Mixed reference
 * o Értékei: Mixed, Int, Float, String, Bool, Object[:osztály neve],
 * Array - alapértelmezett: Mixed
 * o Szülő: parameters felsorolási elem
 * o Elvárás: opcionális
 * 
 * comment:
 * o Típus: felsorolási elem, SML bekezdés
 * o Leírás: A bekezdésen belül részletes leírást lehet adni a paraméterről
 * o Értékei: -
 * o Szülő: parameters felsorolási elem
 * o Elvárás: opcionális
 * 
 * result type:
 * o Típus: felsorolási elem (tömb esetén felsorolás is)
 * o Leírás: Meghatározza a metódus visszatérésének típusát.
 * o Értékei: Mixed, Int, Float, String, Bool, Object[:osztály neve], Array - * alapértelmezett: Mixed
 * o Szülő: Methods felsorolási elem
 * o Elvárás: opcionális
 * 
 * result comment:
 * o Típus: felsorolási elem, SML bekezdés
 * o Leírás: A bekezdésen belül részletes leírást lehet adni a metódus visszatéréséről
 * o Értékei: -
 * o Szülő: Methods felsorolási elem
 * o Elvárás: opcionális
 * 
 * comment:
 * o Típus: felsorolási elem, SML bekezdés
 * o Leírás: A bekezdésen belül részletes leírást lehet adni a metódusról
 * o Értékei: -
 * o Szülő: Methods felsorolási elem
 * o Elvárás: opcionális
 * 
 * Events:
 * o Típus: számozatlan felsorolás
 * o Leírás: Meghatározza a komponens által használható eseményeket. Azokra az
 * eseményekre, amelyek nem átvett események, az adott eseményhez specifikus
 * esemény-osztályok SML-jei fognak létrejönni, amelyek alapján az esemény-osztályok
 * kódbázisai egyszerűen legenerálhatóak.
 * o Szülő: Extension
 * o Elvárás: opcionális
 * 
 * Egy esemény jellemzői:
 * 
 * based on:
 * o Típus: felsorolási elem
 * o Leírás: Külső hivatkozás egy korábban meghatározott esemény leírást tartalmazó
 * SML fájlra.
 * o Értékei: komponens osztály neve és esemény neve - például: SComponent, defaultEvent
 * o Szülő: Events felsorolási elem
 * o Elvárás: opcionális, de kötelező akkor, ha semmilyen más információ nincs megadva
 * 
 * accessibility:
 * o Típus: felsorolási elem, felsorolás
 * o Leírás: Az esemény elérhetőségéhez kapcsolódó jellemzők.
 * o Szülő: Events felsorolási elem
 * o Elvárás: opcionális
 * 
 * namespace:
 * o Típus: felsorolási elem
 * o Leírás: Meghatározza, hogy az esemény milyen névtérben érhető el.
 * o Értékei: Public, Private, Protected - alapértelmezett: Public
 * o Szülő: accessibility
 * o Elvárás: opcionális
 * 
 * raised by:
 * o Típus: felsorolási elem
 * o Leírás: Meghatározza, hogy az esemény milyen környezetben váltható ki.
 * o Értékei: PHP, JavaScript, Database, STML, All - alapértelmezett: PHP+JavaScript+STML
 * o Szülő: accessibility
 * o Elvárás: opcionális
 * 
 * raised in:
 * o Típus: felsorolási elem
 * o Leírás: Meghatározza, hogy az esemény milyen környezetben futhat le.  * o Értékei: PHP, JavaScript, Database, STML, All - alapértelmezett: * PHP+JavaScript+STML
 * o Szülő: accessibility
 * o Elvárás: opcionális
 * 
 * parameters:
 * o Típus: felsorolási elem, felsorolás
 * o Leírás: Meghatározza az esemény paramétereit
 * o Szülő: Events felsorolási elem
 * o Elvárás: opcionális
 * 
 * Egy paraméter jellemzői:
 * 
 * type:
 * o Típus: felsorolási elem (tömb esetén felsorolás is)
 * o Leírás: Meghatározza az esemény visszatérésének típusát. Ha a paraméter
 * referencia, a típust így kell meghatározni - példa: Mixed reference
 * o Értékei: Mixed, Int, Float, String, Bool, Object[:osztály neve],
 * Array - alapértelmezett: Mixed
 * o Szülő: parameters felsorolási elem
 * o Elvárás: opcionális
 * 
 * comment:
 * o Típus: felsorolási elem, SML bekezdés
 * o Leírás: A bekezdésen belül részletes leírást lehet adni a paraméterről
 * o Értékei: -
 * o Szülő: parameters felsorolási elem
 * o Elvárás: opcionális
 * 
 * comment:
 * o Típus: felsorolási elem, SML bekezdés
 * o Leírás: A bekezdésen belül részletes leírást lehet adni az eseményről
 * o Értékei: -
 * o Szülő: Events felsorolási elem
 * o Elvárás: opcionális
 * 
 * - A kódlink -
 * 
 * A kódlinkkel a kódban szereplő, futásidőben létező objektumokra, változókra, * konstansokra és függvény visszatérésére lehet hivatkozni. A kódlink egy "@" * karakter bevezetésével kezdődik. Lehetőségei az alábbiak:
 * - konstans: @konstans, @osztály::konstans
 * - változó: @$valtozo, @$objektum.valtozo, @osztaly::$valtozo
 * - függvény: @fuggveny(), @$objektum.fuggveny(), @osztaly::fuggveny()
 * 
 * Beépített objektum-hivatkozások:
 * - this: az obektumra sajátmagára mutat
 * - owner: az objektumot példányosító objektumra mutat */abstract class SExtension extends undef	//WARNING: PHP5 does not support multiple inheritance but there is more than 1 superclass defined in your UML model!{	/** Aggregations: */	/** Compositions: */	/*** Attributes: ***/	/**	 * SimpleXML DOM	 * @static	 * @access protected	 */	protected static $extensionXml;	/**	 * @access private	 */	private $extensions;	/**	 *	 * @param string name 	 * @param undef value 	 * @return 	 * @access public	 */	public function __set($name,  $value)
	{			} // end of member function __set	/**	 *	 * @param string name 	 * @return undef	 * @access public	 */	public function __get($name)
	{			} // end of member function __get	/**	 *	 * @param string name 	 * @return undef	 * @access public	 */	public function __isset($name)
	{			} // end of member function __isset	/**	 *	 * @param string name 	 * @return 	 * @access public	 */	public function __unset($name)
	{			} // end of member function __unset	/**	 * Megkísérli feloldani a paraméterben átadott kódlinket. Ha a paraméterben kapott	 * érték nem kódlink, egy EExtensionDataNotCodelink kivételt generál - egyébként	 * visszatér a kódlink visszatérésével.	 *	 * @param string codelink 	 * @return undef	 * @static	 * @access public	 */	public static function releaseCodelink($codelink)
	{			} // end of member function releaseCodelink} // end of SExtension?>